﻿using DAO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QuanLyDoiTuong
{
    public partial class QLDanhSachDoiTuong : Form
    {
        UserDAO userLogin = new UserDAO();
        public QLDanhSachDoiTuong()
        {
            InitializeComponent();
        }
        public QLDanhSachDoiTuong(UserDAO user)
        {
            InitializeComponent();
            this.userLogin = user;
        }
        
        private string ma, ten;
        public QLDanhSachDoiTuong(string ma1, string ten1)
        {
            InitializeComponent();
            ma = ma1;
            ten = ten1;
        }
     
        private void Form2_Load(object sender, EventArgs e)
        {
            try
            {
                cbbLoaiDS.DataSource = BALayer.LoaiDanhSachBA.selectLoaiDanhSachAll();
                cbbLoaiDS.ValueMember = "MaLoai";
                cbbLoaiDS.DisplayMember = "TenLoai";
                cbbLoaiDS.SelectedIndex = -1;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông Báo");
            }
            try
            {
                dataGvDanhSach.DataSource = BALayer.LyLichDoiTuongBA.selectLyLichDoiTuongAll();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông Báo");
            }
            
        }
        
        private void dataGvDanhSach_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == 0)
            {
            }
        }

        private void btnTimKiem_Click(object sender, EventArgs e)
        {
            int maLoai = -1;
            if (cbbLoaiDS.SelectedValue != null)
            {
                maLoai = Int32.Parse(cbbLoaiDS.SelectedValue.ToString());
            }
            String ten = txtNhapTen.Text;
            try
            {
                dataGvDanhSach.DataSource = BALayer.LyLichDoiTuongBA.selectDoiTuongByLoaiAndTen(maLoai, ten);
            }
            catch (Exception)
            {
            }
        }

        private void btnUpdate_Click(object sender, EventArgs e) 
        {
            int row = dataGvDanhSach.CurrentCell.RowIndex;
            if (row > -1)
            {
                String maSoDoiTuong = dataGvDanhSach.Rows[row].Cells[1].Value.ToString();
                ThemDoiTuong frmThemDT = new ThemDoiTuong(userLogin, maSoDoiTuong, true);
                frmThemDT.Show();
                this.Close();
            }
            else
            {
                MessageBox.Show("Chưa chọn đối tượng cần chỉnh sửa thông tin!", "Thông Báo");
            }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            int row = dataGvDanhSach.CurrentCell.RowIndex;
            if (row > -1)
            {
                String maSoDoiTuong = dataGvDanhSach.Rows[row].Cells[1].Value.ToString();
                DialogResult result = MessageBox.Show("Bạn thật sự muốn xóa đối tượng này?", "Xóa đối tượng!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (result == DialogResult.Yes)
                {
                    try
                    {
                        int kq = BALayer.LyLichDoiTuongBA.deleteDoiTuong(maSoDoiTuong);
                        if (kq == 1)
                        {
                            MessageBox.Show("Đã xóa thành công đối tượng", "Thông Báo");
                            btnTimKiem_Click(sender, e);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Thông Báo");
                    }
                    
                }
            }
            else
            {
                MessageBox.Show("Chưa chọn đối tượng muốn xóa!", "Thông Báo");
            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            Form frmMenu = new FrmManHinhChinh(userLogin);
            frmMenu.Show();
            this.Close();
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            ExportToExcel excel = new ExportToExcel();
            DataTable dt = (DataTable) dataGvDanhSach.DataSource;
            if (dt == null)
            {
                MessageBox.Show("Không có dữ liệu để xuất ra file excel", "Thông Báo");
            }
            else
            {
                excel.Export(dt, "Danh sach", "DANH SÁCH ĐỐI TƯỢNG");
            }
        }

    }
}
